﻿/*
SINACOR - BMF&Bovespa
Arquivo: ParametroInformado.cs
Criado em: 08-jun-2010 17:14:34
Arquiteto Responsável: p-wgeneroso
*/
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Common.Validation;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Validation.BusinessRules;


namespace Sinacor.Servico.Bovespa.ManutencaoOrdens.BusinessLogic.BusinessRulesValidation 
{
	public class ParametroInformado<T> : IBusinessRuleValidation 
	{
		#region Atributos
        private int _erroObjetoNulo = 109753;
		private T _parametro;
        private List<ValidationError> _errorsList;

		#endregion

		#region Propriedades

		public int ErroObjetoNulo
		{
			get { return _erroObjetoNulo; }
			set { _erroObjetoNulo = value; }
		}

		public T Parametro
		{
			get { return _parametro; }
			set { _parametro = value; }
		}

        public List<ValidationError> ErrorsList
        {
            get { return _errorsList; }
            set { _errorsList = value; }
        }

		#endregion

        #region Construtor

        /// <summary>
        /// Construtor padrão
        /// </summary>
        public ParametroInformado()
        {
            this.ErrorsList = new List<ValidationError>();
        }

        #endregion

        #region Métodos
        public List<ValidationError> GetErrors()
		{
            return this.ErrorsList;
		}

        public void Validate()
        {
            if (this.Parametro == null)
                this.ErrorsList.Add(new ValidationError(this.ErroObjetoNulo));
        }
		#endregion
	}

}